package sqls

import (
	"database/sql"
	"fmt"
	log "code.google.com/p/log4go"
	"EasyData/global"
)
/**
	删除数据
 */
func DeleteRow (item map[string]interface{},db *sql.DB,task *global.Task){

	sqlStr := fmt.Sprintf("delete from %s where %s = ?",task.Table,task.Key)
	result,err := db.Exec(sqlStr,item[task.Key])
	if err!=nil {
		errStr := fmt.Sprintf("taskName [%s] taskCommand [%s] primaryKey [%v] sql:[%s] delete error %s",
			task.TaskName,task.TaskCommond,item[task.Key],sqlStr,err)
		log.Error(errStr)
		return
	}
	i,err := result.RowsAffected()
	if err!=nil {
		errStr := fmt.Sprintf("taskName [%s] taskCommand [%s] primaryKey [%v] sql:[%s] delete error %s",
			task.TaskName,task.TaskCommond,item[task.Key],sqlStr,err)
		log.Error(errStr)
		return
	}
	log.Info("taskName [%s] taskCommand [%s] primaryKey [%v] delete success[rowsAffected %v]  ",
		task.TaskName,task.TaskCommond,item[task.Key],i)

}
/**
	更新数据
 */
func UpdateRow(item map[string]interface{},db *sql.DB,task *global.Task){
	sqlStr := fmt.Sprintf("update %s set %s=%s where %s = ?",task.Table,task.SyncColumn,task.SyncValue,task.Key)
	result,err := db.Exec(sqlStr,item[task.Key])
	if err!=nil {
		errStr := fmt.Sprintf("taskName [%s] taskCommand [%s] primaryKey [%v] syncCloumn[%s] syncValue[%s] sql:[%s] update error %s",
			task.TaskName,task.TaskCommond,item[task.Key],task.SyncColumn,task.SyncValue,sqlStr,err)
		log.Error(errStr)
		return
	}
	i,err := result.RowsAffected()
	if err!=nil {
		errStr := fmt.Sprintf("taskName [%s] taskCommand [%s] primaryKey [%v] syncCloumn[%s] syncValue[%s] sql:[%s] update error %s",
			task.TaskName,task.TaskCommond,item[task.Key],task.SyncColumn,task.SyncValue,sqlStr,err)
		log.Error(errStr)
		return
	}
	log.Info("taskName [%s] taskCommand [%s] primaryKey [%v] syncCloumn[%s] syncValue[%s] update success[rowsAffected %v]  ",
		task.TaskName,task.TaskCommond,item[task.Key],task.SyncColumn,task.SyncValue,i)
}
